深度学习与层级性:从RNN到注意力与记忆 | 张江
1
层级
Hierarchy这个词来源于希腊语的hierarchia, 意思是“大祭司的规则”,表达了一种分明的等级性。它是对事物进行分门别类的一种方法,即用高低、同级别这样的关系来对事物做出划分。用数学的语言来讲,所谓的层级,就是指在我们所讨论的事物集合上定义了一种偏序关系。这种偏序关系总是可以用一种树结构来进行表示,例如:
自然界存在着大量的层级关系。比如,高低就能构成一种层次。住在楼上的人就比楼下的人位于更高的层级。再比如,尺度也构成了层级。比如,我们说人体是由不同的小尺度器官组成的,而器官又是由小尺度大量的细胞组成的,而细胞是由更小尺度的分子构成的……。泛化和抽象是人类语言中的层次,比如:“动物”就是一个高高在上的抽象的层级,“鸟类”则是一个更具体的层次,“麻雀”则是更具体的概念。
2
深度与层级
下面,我们来说一说深度学习。大自然和人工系统中这些形形色色的层级性会反映到我们的数据中,这就迫使我们能够读懂层级性的数据。于是,深度学习技术应运而生,它通过加深神经网络层次,从而应付数据中的层级性。从对卷积神经网络的剖析来看,不同层次的神经元实际上是在不同尺度上提取特征。例如,如果我们用大量的图片训练了一个可以对动物进行分类的深度神经网络,那么该网络就会抽取数据之中的多尺度(层次)信息。
上图是一个深层卷积神经网络,信息从上到下流动。我们喂给这个网络大量的动物图片,网络的低层就会提取出局部边缘的信息,高一层则会提炼动物的腿、脸等更大范围的信息,而到了最高层,则网络提取的就是整个物体的信息。所以,神经网络从低到高刚好能够提取图片数据中从低到高(从局部到整体)的多层次信息。对多尺度层级结构的提取才使得深度学习神经网络可以得到很好的效果。
3
LSTM
与图片不同的是,在类似于自然语言这样的序列信息中,存在着概念或时间尺度上的层级性。比如:“大自然和人工系统中这些形形色色的层级性会反映到我们的数据中”这句话。在最高层次上,这句话表达的是“层级性会反映到数据中”这个概念,然而为了修饰“层级性”,我们加入了低层次的“大自然和人工系统中”以及“形形色色的”这些概念。所以,整个句子也可以被分解为一个树状结构,最底层的叶节点是单词,每个子树都是一个动宾短语。
面对这种序列的层级性,虽然我们也可以用卷积神经网络来处理(参看李嫣然的《自然语言处理中的卷积神经网络》课程,见文末),但是更多地则是使用循环神经网络(Recurrent Neural Network,RNN)。由于网络中环路的存在,这就为信息存储提供了方便。然而,经典的RNN存在着梯度消失、梯度爆炸的信息,于是人们发明了LSTM(Long Short Term Memory)。LSTM对神经网络的最大贡献就是引入了门(Gate)电路。
我们知道,对于神经网络来说,无论它的结构多复杂,其基本单元无非是这样的McCllotch Pitts神经元:
信号之间的组合都是线性的加合关系。而LSTM中则引入了信号之间非线性的相互作用关系,如图:
图中C(t-1)这个信号与f(t)这个信号被乘到了一起(严格讲,由于信号都是向量,*是“按位乘积”,即element-wised product),同样i(t)与C(t)~也是乘到了一起。
这种乘积作用其实是在做控制,就好像经典计算机中的逻辑门电路一样,f(t)就是控制信号。比如如果f(t)=0,则C(t)的更新就与C(t-1)无关了,于是我们就忘掉了C(t-1)的信息,而当f(t)趋近于1,同时i(t)=0的时候,则C(t-1)的状态就会影响C(t)了,于是我们的单元可以用C(t)这个信号将信息存储住。
其实,这种门电路是在提升神经通路信号的层次。因为,在经典的神经网络中,所有的信号都是同一层次的,它们的相互交织完全靠的是加权求和。信号被当成了数据在网络中传递来、传递去。传递通路完全被网络结构控制。
但是,引入了LSTM的逻辑门之后,信号就不仅仅是信号了,它也成为了系统控制的一部分。比如f(t)就不再是普通的数据或信号,它还能够控制系统是否要存储C(t-1)。这就好像计算机中的代码与普通数据的区别。一般的数据只能被被动地处理,而一旦某些数据成为了代码,它就能够主动地操控整个机器。
因此,当神经网络在学习阶段修改连边之后,LSTM就知道在正确的时候打开f(t)这种开关,从而相当于改变了神经通路,以及信号在通路中的走向。换句话说,LSTM由于引入了门电路,它就拥有了一定程度上的“自编程”能力。
本来同是数据或信号,现在有了程序(控制信号)和数据(一般信号)的分别,我们也将这种分别理解为层次。程序(控制信号)比数据(普通信号)高一个级别。
4
Attenion&Memory
在做机器翻译的时候,人们发现了另一种改善LSTM或一般RNN的方法,这就是引入注意力机制。生物体的注意力机制是为了将我们有限的认知资源集中起来放到最重要的地方上。LSTM的注意力机制则是会根据所处环境动态地分配权重(相当于注意力资源)到相应的记忆单元上面。
如图,h1,h2...hT是过往时刻1,2,...,T的LSTM隐单元状态,a(t,1),a(t,2)...a(t,T)是t时刻的注意力分配权重。有了这种机制,LSTM就可以在不同时刻依据上下文(读入的数据和存储在cell中的数据)的不同而分配认知资源到不同的记忆h1,h2,...上面。
后来,Google的工程师又提出了神经图灵机(Neural Turing Machine,NTM)模型。现在看来,这个NTM无非就是引入了存储单元,同时运用类似于注意力的机制来从这个存储区域提取或者写入信息。
这里的Read and write heads就是一种动态地调节权重的机制,与注意力机制相仿。而Memeory就是外部存储器,读写头可以在这里写入、读出信息。
5
万法归一
其实,总体来看,无论是早期提出来的LSTM还是最近比较时髦的NTM或者Memory机制,它们都有着异曲同工的作用,这就是将信号分成了控制和普通信号两种。
在LSTM中,门电路的引入使得控制门的信号成为了控制信号,而细胞的状态C(t)则是被操作的信号。在Attention机制中,Attention动态分配的权重就是控制信号,它的作用与LSTM中输入给门节点的控制信号是同样的。Attention访问的LSTM的过往状态其实就是一种被操作信号。在NTM中,读写头则充当了控制的作用,内存为被操作信号。
同样的,实际上LSTM也可以看作是一种广泛意义上的带有存储单元的机器。其中,每个元胞(Cell)的状态组合就构成了存储器,而门(forget gate,input gate等)就相当于Attention。只不过,NTM相比较Attention机制以及LSTM来说则更加灵活得多。
总结来看,人们为了应付序列信息中的多层次性,就不得不让神经网络中的信号被分割成了两个层次,一个起到控制作用,一个起到被操作的数据作用。
如果我们站在神经元单元的角度来说,其实这种层级的划分就体现为把神经单元区分出了快变量和慢变量这两种,存储器中的神经元就是慢变量,而控制器(门,读写头)中的神经元就是快变量。只有当快慢两种变量的数目和分布达到一种恰到好处的配比的时候,我们的神经机器才能表现优秀。才能应付待处理数据之中时间上的层级性。
然而,这种最佳匹配究竟应该是什么样的呢?也许,统计物理可以给我们带来一定的启发。
6
本期导读
让我们的思想一起发酵——记深度学习中的层级性
本期,我们集智俱乐部公众号推出了“深度学习中的层级结构”这样的特辑。首先,是中科院理论物理所的博士后甄慧玲写的一篇多文章评述性的导读:“让我们的思想一起发酵——记深度学习中的层级性”,给我们带来了一场注意力、记忆与层级性的学术饕餮。
更有意思的是,甄慧玲引领我们认识到统计物理实际上也许可以告诉我们面对不同的序列数据,我们应该如何“最优地”分配注意力与记忆,或者说快变量与慢变量。
首先,我们不应忘记学术大牛Hopfield的谆谆教诲,所谓的记忆问题本质上就是一个求Ising模型的基态问题(Ground state)。其中,每个神经元都可以看作一个Ising,我们用这些Ising的状态组合来记住数据之中的Pattern。所谓的训练过程其实就是在调节Ising模型所处的内场(相互作用),以使得这个Ising系统的基态刚好对应到了数据之中存在的那些Pattern。
沿着这个思路,巴黎高师的校长,统计物理学家M. Mezard在最新的一篇arXiv文章中指出,最终的基态,也就是我们要学习的数据之中的Pattern可以被分解为两部分。而这两部分刚好可以对应到Ising模型的内场(权重矩阵)的两部分,而这两部分则可以被对应到Attention和Memory。也就是说,老爷子Mezard用统计物理给出了Attention和Memory的一种解释!正是因为我们要学习的数据之中具有这种快变量和慢变量的层级性,我们才需要在神经网络中引入一种Attention和Memory的机制,而这样的机制又都是可以用统计物理解析地给出的(在一些限定条件下)。
P.S. 我们附上了甄慧玲小女神在读书会上的激情演讲视频,绝对精彩!
这是集智俱乐部在2016年1月8日举办的“深度‘深度学习’读书会”,中科院理论物理所博士后甄慧玲博士带领大家系统性地梳理了2016年有关深度学习读书会的一些最新进展,其中多篇是Bengio、Hinton、Hopfield等神经网络领域大师的最新工作,其内容涵盖了RNN、LSTM、高速公路网络、残差网络、课程学习(Curriculum learning)、对偶学习、强化学习等丰富的内容。更重要的,甄慧玲博士指出,我们可以以一种全新的方式理解神经网络,广义上任何网络都可以看作是一种能量模型。于是,我们可以借鉴统计物理的思路来理解深度学习,从而给出我们指导。
理解RNN
本期推出的第二篇文章“理解RNN”则帮我们系统地梳理了有关RNN、LSTM等话题的重要论文。华科才子钟翰廷倾力推荐了5篇该领域的经典文章,其中有丰富的实验能够帮助我们理解RNN是如何工作的。
Attention和Memory Network
本期推出的第三篇文章“Attention和Memory Network”则是由著名的小S(李嫣然)献给大家的。她也是系统地梳理了有关注意力和记忆的相关重要论文。我们会看到,为了应付数据之中的层级性,人们想出了各种各样的办法。
7
延伸阅读与相关课程
关于层级性的问题始终是复杂系统、人工智能关注的主题。那么,在数学上,树结构能描述这种复杂性。然而,当你尝试在一张白纸上画下足够大的树的时候你就会发现,你画不下。这是因为,所有的树本质上都是存在于一个双曲空间的。因此,我推荐了我的这篇“从社交网络到量子纠缠”,指出了双曲几何也许是理解复杂系统中层级性的关键。
另外,我们隆重地推出“自然语言理解和深度学习”这个系列课程,它是由小S(李嫣然)领衔,钟翰廷和甄慧玲主演的系统性介绍NLP方向以及Deep Learning的线上课程。
有关NLP中的卷积神经网络,我们推荐小S的课程“自然语言处理中的卷积神经网络”:
点击阅读原文可获取:深度学习与层级性:从RNN到注意力与记忆原稿
集智QQ群|292641157
商务合作|zhangqian@swarma.org
投稿转载|wangting@swarma.org
◆ ◆ ◆
集智俱乐部
英文名: Swarma Club ,
简称“ SA Club ”,
成立于 2008 年 ,
是一个从事学术研究、
享受科学乐趣的探索者的团体 。
力图搭建一个中国的
“ 没有围墙的研究所 ”。
让苹果砸得更猛烈些吧!
长按识别二维码,关注集智Club,
让我们离科学探索更近一步。